package com.rds.system.service;

import com.rds.system.domain.RdaState;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 策略状态Service接口
 *
 * @author rds
 * @date 2021-05-05
 */
public interface IRdaStateService
{
    /**
     * 查询策略状态
     *
     * @param id 策略状态ID
     * @return 策略状态
     */
    public RdaState selectRdaStateById(Long id);

    /**
     * 查询策略状态列表
     *
     * @param rdaState 策略状态
     * @return 策略状态集合
     */
    public List<RdaState> selectRdaStateList(RdaState rdaState);

    /**
     * 查询策略状态
     *
     * @param rdaState 策略状态
     * @return 策略状态集合
     */
    public RdaState selectRdaState(RdaState rdaState);

    /**
     * 根据策略和顺序号查询下一策略状态
     *
     * @param policyid 策略id
     * @param stateid 顺序号
     * @return 策略状态集合
     */
    public RdaState selectRdaStateByPidAndSid(@Param("policyid")Integer policyid, @Param("stateid")Integer stateid,@Param("str")String str);

    /**
     * 根据策略查询第一个状态
     *
     * @param policyid 策略id
     * @return 策略状态集合
     */
    public Integer selectRdaStateByPid(@Param("policyid")Integer policyid);

    /**
     * 新增策略状态
     *
     * @param rdaState 策略状态
     * @return 结果
     */
    public int insertRdaState(RdaState rdaState);

    /**
     * 修改策略状态
     *
     * @param rdaState 策略状态
     * @return 结果
     */
    public int updateRdaState(RdaState rdaState);

    /**
     * 批量删除策略状态
     *
     * @param ids 需要删除的策略状态ID
     * @return 结果
     */
    public int deleteRdaStateByIds(Long[] ids);

    /**
     * 删除策略状态信息
     *
     * @param id 策略状态ID
     * @return 结果
     */
    public int deleteRdaStateById(Long id);


    /*根据策略查询管理的状态**/
    List<RdaState> getStatesByPolicyId(Long policyId);

    /** 根据策略id和状态名称查询状态id **/
    Long selectRdaStateId(@Param("policyId")Long policyId,@Param("name")String name);
}
